// import type { NButton } from 'naive-ui';
import type { Component, DefineComponent } from 'vue';

/**
 * 数据操作按钮
 */
export interface ActionButton {
  /**
   * 名称
   */
  name: string;
  /**
   * 图标
   */
  icon: string | Component | DefineComponent;
  /**
   * type
   */
  type?: 'default' | 'error' | 'primary' | 'info' | 'success' | 'warning';
  /**
   * size
   */
  size?: string;
  /**
   * secondary
   */
  secondary?: boolean;
  /**
   * dashed
   */
  dashed?: boolean;
  /**
   * ghost
   */
  ghost?: boolean;
  /**
   * tertiary
   */
  tertiary?: boolean;
  /**
   * text
   */
  text?: boolean;
  /**
   * 标识Key
   */
  key: string;
  /**
   * 是否禁用
   */
  disabled?: boolean | ControlFunction;
  /**
   * 是否显示
   */
  display?: boolean | ControlFunction;
  /**
   * 是否加载中
   */
  loading?: boolean | ControlFunction;
  /**
   * 权限
   */
  permission?: string;
  /**
   * 触发事件处理之前是否需要确认
   */
  confirmation?: boolean;
  /**
   * 确认提示
   */
  confirmationTip?: string | ((rowData: Recordable) => string);
  /**
   * 按钮触发事件
   */
  onClick: (rowData?: Recordable) => void;
  /**
   * 是否批量按钮
   */
  batch?: boolean;
}
